//
//  ViewController.swift
//  04.微博文本转表情
//
//  Created by yaochunlin on 16/5/3.
//  Copyright © 2016年 yaochunlin. All rights reserved.
//

 /*
 1.找到微博文本中的表情名称 []
 2.用表情名称去找模型
 3.将图片转化为带附件的属性文本
 4.将表情名称替换为属性文本
 
 */

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
//        let emoticon = YCLEmoticonModel.emoticonNameToEmoticonModel("[花花]")
//        print("找到模型: \(emoticon)")
        let text = "我[爱你]啊啊,[嘻嘻], [笑哈哈], [花花]！！！"
        
        
//        let attrText = emoticonNameTextToPicAttText(text)
        
        textView.attributedText = text.emoticonNameTextToPicAttText()
    }
    
//    //将微博内容中表情字符串替换为表情图片
//    func emoticonNameTextToPicAttText(text: String) -> NSAttributedString {
//        
//        //将普通文本转化为属性文本方便后续操作
//        let attrText = NSMutableAttributedString.init(string: text)
//        
////        1.找到微博文本中的表情名称 []
//        //利用正则表达式
//        let pattern = "\\[.*?\\]"
//        
//        let regular = try! NSRegularExpression.init(pattern: pattern, options: NSRegularExpressionOptions.DotMatchesLineSeparators)
//        //匹配
//        let results = regular.matchesInString(text, options: [], range: NSRange.init(location: 0, length: text.characters.count))
//        
//        //反过来遍历(这样不会影响前面的范围)
//        for result in results.reverse() {
//            
//            let range = result.rangeAtIndex(0)
//            
//            //截取匹配的名称
//            let emoticonName = (text as NSString).substringWithRange(range)
//            print("匹配的结果: \(emoticonName )")
//            
//            //2.用表情名称去找模型
//            
//            if let emoticonModel = YCLEmoticonModel.emoticonNameToEmoticonModel(emoticonName) {
//            
//                //3.将图片转化为带附件的属性文本
//                let attrM = emoticonModel.emoticonModelToAttrText(UIFont.systemFontOfSize(15))
//                
//                //4.将表情名称替换为属性文本
//                attrText.replaceCharactersInRange(range, withAttributedString: attrM)
//            }
//        }
//        
//        return attrText
//        
//        
//    }
    
//    //用表情名称去找模型
//    func emoticonNameToEmoticonModel(name: String) -> YCLEmoticonModel? {
//        
//        //遍历每个表情包
//        for package in YCLEmoticonManager.shareEmoticonManager.allPackages {
//            
//            //遍历每个表情包里面的表情
//            for emoticon in package.emoticons {
//                
//                if emoticon.chs == name {
//                    
//                    return emoticon
//                }
//            }
//        }
//        
//        return nil
//    }
}

